<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // - push：末尾新增
  // 参数：要新增的数据
  // 返回值：新增数据后的数组长度
  // 是否改变原数组：是
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // var res = arr.push("abc", 234, ["a", "b"]);
  // console.log(res);
  // console.log(arr);

  // - unshift：首位新增
  // 参数：要新增的数据
  // 返回值：新增数据后的数组长度
  // 是否改变原数组：是
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // var res = arr.unshift("abc", 234);
  // console.log(res);
  // console.log(arr);

  // - pop：末尾删除
  // 参数：无
  // 返回值：删除了的数据
  // 是否改变原数组：是
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // var res = arr.pop();
  // console.log(res);
  // console.log(arr);

  // - shift：首位删除
  // 参数：无
  // 返回值：删除了的数据
  // 是否改变原数组：是
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // var res = arr.shift();
  // console.log(res);
  // console.log(arr);

  // - splice：删除并替换
  // 参数1：开始删除的索引
  // 参数2：要删除的个数
  // 参数3~：要插入到删除位置的新数据
  // 返回值：数组形式，存储了删除了的数据
  // 是否改变原数组：是
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // // var res = arr.splice(3);
  // // var res = arr.splice(2, 1);
  // var res = arr.splice(2, 1, "abc", 345, 987);
  // console.log(res);
  // console.log(arr);

  // - slice：截取
  // 参数1：开始截取的位置
  // 参数2：截取结束的位置（不含）
  // 返回值：截取出的新数组
  // 是否改变原数组：否
  // var arr = ["hello", 4,5,6, "world", 6, 7, 8];
  // console.log(arr);
  // // var res = arr.slice(2);
  // // var res = arr.slice(2, 5);
  // var res = arr.slice(0);
  // console.log(res);
  // console.log(arr);
  // console.log(arr === res);

  // - join：连接
  // 参数：连接符，字符类型
  // 返回值：连接之后的字符串
  // 是否改变原数组：否
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // // var res = arr.join();
  // var res = arr.join("-");
  // console.log(res);
  // console.log(arr);

  // - reverse：翻转
  // 参数：无
  // 返回值：翻转之后的原数组
  // 是否改变原数组：是
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // var res = arr.reverse();
  // console.log(res);
  // console.log(arr);
  // console.log(arr === res);

  // - concat：合并
  // 参数：要合并的数据（可以解析一层数组）
  // 返回值：合并之后的新数组
  // 是否改变原数组：否
  // var arr = ["hello", 4,5,6, "world"];
  // console.log(arr);
  // // var res = arr.concat();
  // var res = arr.concat("abc", 876, [["a","b"],"c"]);
  // console.log(res);
  // console.log(arr);
  // console.log(arr === res);

  // - sort：排序
  // 参数：回调函数，自带两个形参，需要返回两个形参之差
  // 返回值：排序之后的老数组
  // 是否改变原数组：是
  // var arr = [67, 45, 2134, 199, 91, 56];
  // console.log(arr);
  // var res = arr.sort( function(a, b){ return b-a } );
  // console.log(res);
  // console.log(arr);
  // console.log(arr === res);

  // - indexOf：根据数据查索引
  // 参数1：要查询的数据
  // 参数2：开始查询的位置
  // 返回值：查询到的索引，未查询到为-1
  // 是否改变原数组：否
  // var arr = [5,6,7,6,5,4,3,4,5,6];
  // console.log(arr);
  // var res = arr.indexOf( 6 );
  // var res = arr.indexOf( 6, 4 );
  // var res = arr.indexOf( 2 );
  // console.log(res);
  // console.log(arr);

  // - includes：查询数组中是否存在指定数据
  // 参数1：要查询的数据
  // 参数2：开始查询的位置
  // 返回值：查询到为true，未查询到为false
  // 是否改变原数组：否
  // var arr = [5,6,7,6,5,4,3,4,5,6];
  // console.log(arr);
  // var res = arr.includes( 6 );
  // var res = arr.includes( 6, 10 );
  // var res = arr.includes( 2 );
  // console.log(res);
  // console.log(arr);

</script>
</html>